<?php

class Admin_AmbientesController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    	$this->_helper->_layout->setLayout('admin');
        
    }

    public function indexAction()
    {

    	$tipo = '1';
		
       Zend_Paginator::setDefaultItemCountPerPage(10);
	    Zend_View_Helper_PaginationControl::setDefaultViewPartial('produtos/paginator.phtml');

		$this->view->headTitle('Ambientes');
		
		$galeriasModel = new Application_Model_Galerias();
		$galeriaModel = new Application_Model_Galeria();
		
		$galeria = $galeriasModel->fetchAll(
			$galeriasModel->select()->where('excluido = 0')
			->where('tipo = ?', $tipo)
					);
					
				if(isset($galeria[0]['id_galeria'])){
					$fotos = $galeriaModel->fetchAll(
						$galeriaModel->select()->where('excluido = 0')
						->where('galeria = ?', $galeria[0]['id_galeria'])
								);
				
				$paginator = Zend_Paginator::factory($fotos);

				$paginator->setCurrentPageNumber($this->_request->getParam('pagina'));

				$this->view->paginator = $paginator;
				}

    }

    public function adicionarAction() {
        require_once APPLICATION_PATH . '/modules/admin/forms/Galeria.php';
        $this->view->form = new admin_Form_Galeria();

		
        if ($this->_request->isPost()) {
			$galeria = '1';
		
            $upload = $this->view->form->pFoto->getTransferAdapter();
            $upload->addValidator('Size', false, array('0kB', '2mB'));
            $upload->addValidator('Extension', false, array('gif', 'jpg', 'png'));

            $uploaded = false;
            if ($upload->isValid()) {
                if ($upload->receive()) {
                    $uploaded = true;
                }
            }

            $this->view->form->setDefaults($this->_request->getPost());

            $data = $this->view->form->getValues();

            if ($this->view->form->isValid($data)) {

                $galeriaModel = new Application_Model_Galeria();

                unset($data['pFoto']);
				$data['galeria'] = $galeria;
                $id = $galeriaModel->insert($data);

                if ($uploaded) {
                    $filter = new Zend_Filter_File_Rename(array('target' => APPLICATION_PATH . '/../public/galeria_fotos/' . $id . '.jpg', 'overwrite' => true));
                    $filter->filter($upload->getFileName());

                    Zend_Loader::loadClass('Imagem');

                    $Pasta  = "galeria_fotos/";
                    $nomeArquivo = $id . '.jpg';
                    $Largura = '800';
                    $Altura = '600';

                    $Pasta_thumbs  = "galeria_fotos/thumbs/";
                    $Largura_thumbs = '200';
                    $Altura_thumbs = '200';

                    $MetodoRedimencionar = 2;

                    $CorFundo = null;

                    $Imagem = new Imagem($Pasta . $nomeArquivo);
                    $Imagem->Ponteiro = '';
                    $Imagem->Redimencionar($Largura, $Altura, $MetodoRedimencionar, $CorFundo);
                    $Imagem->Salvar( $Pasta . $nomeArquivo);

                    $Imagem = new Imagem($Pasta . $nomeArquivo);
                    $Imagem->Ponteiro = '';
                    $Imagem->Redimencionar($Largura_thumbs, $Altura_thumbs, $MetodoRedimencionar, $CorFundo);
                    $Imagem->Salvar( $Pasta_thumbs . $nomeArquivo);
                }

				$onde = '/admin/ambientes/';
				return $this->_helper->redirector->gotoUrl($onde);
            }
        }
    }

    public function editarAction() {
        $id = $this->_request->getParam('id');
		
        require_once APPLICATION_PATH . '/modules/admin/forms/Galeria.php';
        $this->view->form = new admin_Form_Galeria();

        $galeriaModel = new Application_Model_Galeria();

        if ($this->_request->isPost()) {
            $upload = $this->view->form->pFoto->getTransferAdapter();
            $upload->addValidator('Size', false, array('0kB', '2mB'));
            $upload->addValidator('Extension', false, array('gif', 'jpg', 'png'));

            $uploaded = false;
            if ($upload->isValid()) {
                if ($upload->receive()) {
                    $uploaded = true;
                }
            }

            $this->view->form->setDefaults($this->_request->getPost());

            $data = $this->view->form->getValues();

            if ($this->view->form->isValid($data)) {

                unset($data['pFoto']);

                $galeriaModel->update($data, 'id_foto = ' . $id);

                if ($uploaded) {
                    $filter = new Zend_Filter_File_Rename(array('target' => APPLICATION_PATH . '/../public/galeria_fotos/' . $id . '.jpg', 'overwrite' => true));
                    $filter->filter($upload->getFileName());
                    
                    Zend_Loader::loadClass('Imagem');

                    $Pasta  = "galeria_fotos/";
                    $nomeArquivo = $id . '.jpg';
                    $Largura = '800';
                    $Altura = '600';

                    $Pasta_thumbs  = "galeria_fotos/thumbs/";
                    $Largura_thumbs = '200';
                    $Altura_thumbs = '200';

                    $MetodoRedimencionar = 2;

                    $CorFundo = null;

                    $Imagem = new Imagem($Pasta . $nomeArquivo);
                    $Imagem->Ponteiro = '';
                    $Imagem->Redimencionar($Largura, $Altura, $MetodoRedimencionar, $CorFundo);
                    $Imagem->Salvar( $Pasta . $nomeArquivo);

                    $Imagem = new Imagem($Pasta . $nomeArquivo);
                    $Imagem->Ponteiro = '';
                    $Imagem->Redimencionar($Largura_thumbs, $Altura_thumbs, $MetodoRedimencionar, $CorFundo);
                    $Imagem->Salvar( $Pasta_thumbs . $nomeArquivo);                 
                }

				$onde = '/admin/ambientes/';
				return $this->_helper->redirector->gotoUrl($onde);
            }
        }

        $galeria = $galeriaModel->find($id)->current();

        $this->view->form->setDefaults($galeria->toArray());
    }


    public function removerAction() {
        $id = $this->_request->getParam('id');
        $confirma = $this->_request->getParam('confirma');

        $galeriaModel = new Application_Model_Galeria();

        if(isset($confirma)){
            if($confirma == 1){
                $galeriaModel->update(array(
                    'excluido' => '1'
                        ), 'id_foto = ' . $id);

                unlink(APPLICATION_PATH . '/../galeria_fotos/' . $id . '.jpg');
                unlink(APPLICATION_PATH . '/../galeria_fotos/thumbs/' . $id . '.jpg');
            }
			$onde = '/admin/ambientes';
			return $this->_helper->redirector->gotoUrl($onde);

        }else{
            $this->view->id = $this->_request->getParam('id');

            $galeriaModel = new Application_Model_Galeria();

            $nome_galeria = $galeriaModel->fetchAll(
                                        $galeriaModel->select()
                                            ->from($galeriaModel->info(Zend_Db_Table_Abstract::NAME))
                                            ->columns(array('descricao'))
                                            ->where('id_foto = ?', $id)
                                        );
            $this->view->galeria = $nome_galeria;       
        }

    }
	
}

